﻿Imports System.Xml
Imports Mysoft.Map.Data
Imports System.Data.SqlClient
Imports System.Text


Public Class ProjectProfitMNG

    '''获取项目利润排名,仅显示管理驾驶舱设置显示的项目
    '参数：strPMBZ     排名的标准：销售净利率 、净利润（元）
    '参数：strPMOrder  排名的顺序：1为降序，0为升序，默认为降序
    '参数：strOrderCode排名的字段名
    '参数：strTopCount 取排名的前多少名，没有表示取全部
    '参数：strBUGUID   排名的公司：指在哪个公司下排名，没有值表示在整个集团下排名
    Public Function GetProjectProfitPM(ByVal strPMBZ As String, ByVal strPMOrder As String, ByVal strOrderCode As String, ByVal strTopCount As String, ByVal strBUGUID As String) As DataTable
        Dim intTopCount As Integer = 0 '0传给存储过程表示显示全部
        Try
            intTopCount = Convert.ToInt32(strTopCount)
        Catch ex As Exception

        End Try

        If String.IsNullOrEmpty(strOrderCode) Then
            strOrderCode = "SubTotal"
        End If

        If String.IsNullOrEmpty(strBUGUID) Then '没有传递公司GUID，则传递虚拟的GUID，表示不按公司过滤
            strBUGUID = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
        End If

        Dim td As DataTable
        Dim myConnection As SqlConnection = New SqlConnection(MyDB.GetSqlConnectionString())
        Dim myCommand As SqlCommand = New SqlCommand("usp_ys_GetProjectProfitPM", myConnection)
        Dim MyAdapter As SqlDataAdapter = New SqlDataAdapter

        myCommand.CommandType = CommandType.StoredProcedure
        MyAdapter.SelectCommand = myCommand

        Dim sqlParams As SqlParameterCollection = myCommand.Parameters

        '排名的标准：销售净利率 、净利润（元）
        sqlParams.Add(New SqlParameter("@PMBZ", SqlDbType.VarChar, 50))
        sqlParams("@PMBZ").Value = strPMBZ

        '排名的顺序：1为降序，0为升序，默认为降序
        sqlParams.Add(New SqlParameter("@PMOrder", SqlDbType.VarChar, 2))
        sqlParams("@PMOrder").Value = strPMOrder

        '排名的字段名
        sqlParams.Add(New SqlParameter("@OrderCode", SqlDbType.VarChar, 20))
        sqlParams("@OrderCode").Value = strOrderCode

        '取排名的前多少名，没有表示取全部
        sqlParams.Add(New SqlParameter("@TopCount", SqlDbType.Int))
        sqlParams("@TopCount").Value = intTopCount

        '排名的公司：指在哪个公司下排名，没有值表示在整个集团下排名
        sqlParams.Add(New SqlParameter("@BUGUID", SqlDbType.UniqueIdentifier))
        sqlParams("@BUGUID").Value = New Guid(strBUGUID)

        Dim a_ds As New DataSet
        '执行存储过程
        Try
            MyAdapter.Fill(a_ds)

            td = a_ds.Tables(0)
       
        Catch exc As Exception

        Finally
            myConnection.Close()

        End Try

        Return td

    End Function

End Class